/**
 * @file OutputWriter.h
 *
 * Zapis obserwacji do jakiegoś formatu - nagłówek.
 *
 * @author Zbigniew Siciarz
 * @date 2009
 * @version 2.0.0
 * @since 2.0.0
 */

#ifndef OUTPUTWRITER_H_
#define OUTPUTWRITER_H_

#include "VisualObservation.h"
#include <QList>
#include <QString>

namespace Dogz
{
    /**
     * Abstrakcyjna klasa bazowa dla wszystkich formatów wyjścia.
     */
    class OutputWriter
    {
    public:
        OutputWriter() {}
        virtual ~OutputWriter() {}

        void addObservation(const VisualObservation& obs);
        void addObservations(const QList<VisualObservation>& observations);

        /**
         * Zwraca zapis obserwacji.
         */
        virtual QString getOutput() const = 0;

    protected:
        QList<VisualObservation> m_observations;
    };
}

#endif /* OUTPUTWRITER_H_ */
